#!/bin/bash
# 传统 nohup 管理脚本
# 用法：./manage.sh [start|stop|restart|status|log]

set -e

# 基础路径
BASE_DIR=$(cd "$(dirname "$0")" && pwd)
BACKEND_DIR="$BASE_DIR/backend"
LOG_DIR="$BASE_DIR/log"
PID_FILE="$BASE_DIR/app.pid"
APP_NAME="license-manager"
PYTHON="python3"
APP_FILE="app.py"          # ← 你的脚本名

# 确保目录存在
mkdir -p "$LOG_DIR"

# ------------------ 启停 ------------------
start() {
  if [ -f "$PID_FILE" ] && kill -0 $(cat "$PID_FILE") 2>/dev/null; then
    echo "$APP_NAME 已运行，PID=$(cat $PID_FILE)"
    return 0
  fi
  echo "启动 $APP_NAME (nohup)..."
  nohup $PYTHON "$BACKEND_DIR/$APP_FILE" > "$LOG_DIR/app.log" 2>&1 &
  echo $! > "$PID_FILE"
  echo "$APP_NAME 已启动，日志：$LOG_DIR/app.log"
}

stop() {
  if [ ! -f "$PID_FILE" ]; then
    echo "$APP_NAME 未运行"
    return 0
  fi
  kill -9 $(cat "$PID_FILE") && rm -f "$PID_FILE"
  echo "$APP_NAME 已停止"
}

restart() {
  echo "重启 $APP_NAME..."
  $0 stop
  sleep 2
  $0 start
}

status() {
  if [ -f "$PID_FILE" ] && kill -0 $(cat "$PID_FILE") 2>/dev/null; then
    echo "$APP_NAME 运行中，PID=$(cat $PID_FILE)"
  else
    echo "$APP_NAME 未运行"
  fi
}

log() {
  tail -f "$LOG_DIR/app.log"
}

# ------------------ 主流程 ------------------
case "$1" in
  start|stop|restart|status|log)
    $1
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|status|log}"
    exit 1
    ;;
esac
